package com.example.coupon.job;

import com.example.coupon.comon.enums.ActivityStatusEnum;
import com.example.coupon.dao.ActivityMapper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
public class ActivityJob {

    @Autowired
    private ActivityMapper activityMapper;

    //开启活动的定时任务
    @XxlJob("startActivityHandler")
    public void startActivityHandler() throws Exception {
        //1、确认我们需要开启的活动是哪些。
        // 查询出来 活动未开始，但是活动时间已经到了的活动
        List<Map<String, Object>> activityList = activityMapper.queryCanStartActivity(ActivityStatusEnum.NOT_START.getCode());
        if (activityList.size() > 0) {
            activityList.forEach(activityMap -> {
                Long id = Long.parseLong(activityMap.get("id").toString());
                System.out.println("修改活动状态为进行中,id = " + id);
                activityMapper.updateStatusById(ActivityStatusEnum.UNDERWAY.getCode(), id);
            });
        }
    }

    // 结束活动的定时任务
    @XxlJob("endActivityHandler")
    public void endActivityHandler() throws Exception {
        //1、确认我们需要开启的活动是哪些。
        // 查询出来 活动未开始，但是活动时间已经到了的活动
        List<Map<String, Object>> activityList = activityMapper.queryCanEndActivity(ActivityStatusEnum.UNDERWAY.getCode());
        if (activityList.size() > 0) {
            activityList.forEach(activityMap -> {
                Long id = Long.parseLong(activityMap.get("id").toString());
                System.out.println("修改活动状态为已结束,id = " + id);
                activityMapper.updateStatusById(ActivityStatusEnum.END.getCode(), id);
            });
        }
    }
}